Method for encoding sound source of probabilistic code book

ABSTRACT

A stochastic codebook associates a pulse position of a predetermined channel with a pulse position of another channel, searches for a pulse position by means of a predetermined algorithm, and outputs a code combining a found pulse position with a polarity code to an excitation vector creation section as a stochastic excitation vector code. By this means, it is possible to secure variations so that there are no positions where there is no pulse at all while achieving a reduction of the number of bits used when coding stochastic codebook pulses in order to attain a lower bit rate.

TECHNICAL FIELD

The present invention relates to a stochastic codebook excitation vectorcoding method in a CELP speech coding apparatus/speech decodingapparatus.

BACKGROUND ART

When speech signals are transmitted in a packet communication systemtypified by Internet communication, a mobile communication system, orthe like, compression and coding techniques are used to improve thespeech signal transmission efficiency. Many speech coding methods havebeen developed to date, and many low bit rate speech coding methodsdeveloped in recent years, such as CELP, separate a speech signal intospectrum envelope information and spectrum detailed structureinformation, and perform compression and coding of the separatedinformation.

In a CELP speech coding apparatus, synthetic speech vectors arecalculated for all combinations of adaptive code vectors stored by anadaptive codebook and fixed code vectors stored by a stochasticcodebook, distance calculation is performed for each synthetic speechand input speech signal, and the adaptive code vector index and fixedcode vector index for which the distance is smallest are found.

One known stochastic codebook is an algebraic codebook. This codebookenables a stochastic codebook search to be performed with acomparatively small amount of calculation, and has consequently beenwidely used in CELP in recent years.

An excitation vector of an algebraic codebook is composed of a smallnumber of pulses with an amplitude of 1 and polarities (+, −), and thepulses (in this case, excitation vector waveform candidates) arepositioned so as not to overlap each other.

For example, when the subframe length is 32 and the number of pulses(=number of channels) is 4, the number of pulses per channel is 32/4=8,and the channel 0 pulse positions ici0[i0], channel 1 pulse positionsici1[i1], channel 2 pulse positions ici2[i2], and channel 3 pulsepositions ici3[i3] are as shown below. Here, i0, i1, i2, and i3 denoteindexes of the respective channels.

-   -   ici0[i0]={0, 4, 8, 12, 16, 20, 24, 28}    -   ici1[i1]={1, 5, 9, 13, 17, 21, 25, 29}    -   ici2[i2]={2, 6, 10, 14, 18, 22, 26, 30}    -   ici3[i3]={3, 7, 11, 15, 19, 23, 27, 31}

A conventional stochastic codebook codes the pulse positions of eachchannel independently, and takes codes combining these with polaritycodes as stochastic excitation vector codes.

For example, in the above case of a subframe length of 32 and 4channels, a conventional codebook 103 represents a pulse position ofeach channel as 3 bits, and together with the polarity code, performscoding using a code of (3+1)×4=16 bits.

However, a problem with the above conventional stochastic codebookcoding method is that, if the bit rate is low the bits assigned to eachchannel are also limited, and there are positions where there is nopulse at all, so that variations of an excitation vector waveformcorresponding to a code (position information) decrease, and soundquality degradation occurs.

In the above case of a subframe length of 32 and 4 channels, forexample, there are positions where there is no pulse at all if coding isperformed with fewer than 16 bits.

DISCLOSURE OF INVENTION

It is an object of the present invention to provide a stochasticcodebook excitation vector coding method that enables variations to besecured so that there are no positions where there is no pulse at allwhile achieving a reduction of the number of bits used when codingstochastic codebook pulses.

This object is achieved by associating a pulse position of apredetermined channel with a pulse position of another channel,searching for a pulse position by means of a predetermined algorithm,and taking a found pulse position code and a polarity code as astochastic excitation vector code.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram showing the configuration of a CELP speechcoding apparatus;

FIG. 2 is a flowchart showing an example of a pulse search algorithm foreach channel in a coding method according to Embodiment 1 of the presentinvention;

FIG. 3 is a flowchart showing an example of a pulse search algorithm foreach channel in a coding method according to Embodiment 1 of the presentinvention;

FIG. 4 is a flowchart showing an example of a pulse search algorithm foreach channel in a coding method according to Embodiment 2 of the presentinvention; and

FIG. 5 is a flowchart showing an example of a pulse search algorithm foreach channel in a coding method according to Embodiment 2 of the presentinvention.

BEST MODE FOR CARRYING OUT THE INVENTION

FIG. 1 is a block diagram showing the configuration of a CELP speechcoding apparatus. An input speech signal is input sequentially to thespeech coding apparatus divided into processing frames at time intervalsof approximately 20 ms.

The input speech signal input to the speech coding apparatus everyprocessing frame is first supplied to an LPC analysis section 101. LPCanalysis section 101 performs LPC (Linear Predictive Coding) of theinput speech signal and obtains an LPC coefficient, performs vectorquantization of the LPC coefficient to produce an LPC code, and decodesthis LPC code to obtain a decoded LPC coefficient.

An excitation vector creation section 104 reads an adaptive code vectorand fixed code vector respectively from an adaptive codebook 102 andstochastic codebook 103, and sends these to an LPC combining section105. LPC combining section 105 performs combining filtering of theadaptive code vector and fixed code vector supplied from excitationvector creation section 104, and the decoded LPC coefficient providedfrom LPC analysis section 101, with an all pole type combining filter inthe filter coefficient, and obtains a combined adaptive code vector andcombined fixed code vector.

A comparison section 106 analyzes the relationship between the combinedadaptive code vector and combined fixed code vector output from LPCcombining section 105, and finds adaptive codebook optimum gain to bemultiplied by the combined adaptive code vector, and stochastic codebookoptimum gain to be multiplied by the combined fixed code vector.

Comparison section 106 also adds together the vector obtained bymultiplying the combined adaptive code vector by the adaptive codebookoptimum gain and the vector obtained by multiplying the combined fixedcode vector by the stochastic codebook optimum gain, and obtains acombined speech vector, and performs a distance calculation on thecombined speech and input speech signal. Then comparison section 106obtains the adaptive code vector stored by adaptive codebook 102 and thecombined speech vector stored by stochastic codebook 103, and finds theadaptive code vector index and fixed code vector index for which thedistance between the combined speech and input speech signal issmallest. Comparison section 106 then sends the indexes of the codevectors output from the codebooks, the code vectors corresponding to therespective indexes, and the adaptive codebook optimum gain andstochastic codebook optimum gain, to a parameter coding section 107.

Parameter coding section 107 codes the adaptive codebook optimum gainand stochastic codebook optimum gain and obtains a gain code, andoutputs the gain code, the LPC coefficient provided by LPC analysissection 101, and the indexes of each codebook together for eachprocessing frame.

Parameter coding section 107 also adds together the two vectorscomprising the vector obtained by multiplying the adaptive code vectorcorresponding to the adaptive codebook index by the adaptive codebookgain corresponding to the gain code, and the vector obtained bymultiplying the fixed code vector corresponding to the stochasticcodebook index by the stochastic codebook gain corresponding to the gaincode, and obtains a drive excitation vector, and updates the oldadaptive code vector in adaptive codebook 102 with the drive excitationvector.

Combining filtering by LPC combining section 105 generally makescombined use of a linear predictive coefficient, a high emphasis filter,and a weighting filter that uses a long-term predictive coefficientobtained by long-term predictive analysis of input speech.

Adaptive codebook and stochastic codebook optimum index searches,optimum gain calculation, and optimum gain coding processing aregenerally carried out in subframe units resulting from further divisionof a frame.

In a speech decoding apparatus (decoder), the same configuration of LPCanalysis section 101, adaptive codebook 102, stochastic codebook 103,excitation vector creation section 104, and LPC combining section 105 isprovided as shown in FIG. 1, and an excitation vector waveform isobtained by decoding codes transmitted from a speech coding apparatus.

In order to reduce the amount of calculation, comparison section 106usually searches for an adaptive codebook 102 excitation vector andstochastic codebook 103 excitation vector by means of an open-loopprocedure. This open-loop search procedure is described below.

(1) First, excitation vector creation section 104 chooses excitationvector candidates (adaptive excitation vectors) in succession fromadaptive codebook 102 only, LPC combining section 105 creates acomposite tone, and comparison section 106 carries out a comparison ofthe input speech and composite tone and selects the optimum adaptivecodebook 102 code. At this time, gain is selected on the assumption thatit is the value at which coding distortion is minimal (optimum gain).

(2) Next, the above-described adaptive codebook code is fixed,excitation vector creation section 104 successively selects the sameexcitation vector from adaptive codebook 102 and stochastic codebook 103successively selects the excitation vector (stochastic excitationvector) corresponding to the comparison section 106 code, LPC combiningsection 105 generates composite tones, and comparison section 106compares the sum of both composite tones with the input speech anddetermines the optimum stochastic codebook 103 code. As in (1) above,gain is selected at this time on the assumption that it is the value atwhich coding distortion is minimal (optimum gain).

Use of the above procedure to search for the optimum excitation vectorresults in a slight degradation of coding capability, but also a majorreduction in the amount of calculation, compared with the method ofsearching for the optimum excitation vector by comparing combinations ofall excitation vectors or both codebooks.

The stochastic codebook 103 excitation vector search method will now bedescribed in detail.

Excitation vector code derivation is carried out by searching for theexcitation vector that minimizes coding distortion E in Equation (1)below. In Equation (1), x denotes the coding target; p, adaptiveexcitation vector gain; H, a weighting combining filter; a, an adaptiveexcitation vector; q, stochastic excitation vector gain; and s, astochastic excitation vector.E=|x−(pHa+qHs)|²  Equation (1)

As the adaptive excitation vector search is performed by means of anopen-loop procedure, stochastic codebook 103 code derivation isperformed by searching for the excitation vector that minimizes codingdistortion E in Equations (2) below. In Equations (2), y denotes thestochastic excitation vector search target vector.y=x−pHaE|y−qHs| ²  Equations (2)

Here, gain values p and q are determined after the excitation vectorsearch, and by making gain p=gain q=1, Equations (2) above can bewritten as Equations (3) below.

$\begin{matrix}\begin{matrix}{y = {x - {\frac{x \cdot {Ha}}{{{Ha}}^{2}}{Ha}}}} \\{{{{{E =}}y} - {\frac{y \cdot {Hs}}{{{Hs}}^{2}}{Hs}}}}^{2}\end{matrix} & {{Equations}\mspace{14mu}(3)}\end{matrix}$

Minimizing this distortion expression is equivalent to maximizingfunction C in Equation (4) below.

$\begin{matrix}{C = \frac{\left( {y\;{H \cdot s}} \right)^{2}}{sHHs}} & {{Equation}\mspace{14mu}(4)}\end{matrix}$

Therefore, in the case of a search for an excitation vector composed ofa small number of pulses such as an algebraic codebook excitationvector, calculating yH and HH beforehand enables function C above to befound with a small amount of calculation.

yH can be found by reversing the order of vector y and convolutingmatrix H, and then reversing the order of the result, and HH can befound by multiplication of the matrices.

Stochastic codebook 103 searches for and codes a stochastic excitationvector using the procedure described in (1) through (4) below.

(1) First, as preliminary processing, vector yH and matrix HH are found.

(2) Next, pulse polarities are determined from the polarities (+ −) ofvector yH elements. Specifically, the polarity of the pulse at eachposition is matched to the value of that position in yH, and thepolarity of the yH value is stored in another array. After thepolarities of all positions have been stored in another array, yH valuesare all made absolute values and converted to positive values. HH valuesare also converted in accordance with these polarities by performingpolarity multiplication.

(3) Next, function C shown in Equation (4) is found by adding yH and HHvalues using an n-fold loop (where n is the number of channels), and thepulse positions of the channels at which this value is largest arefound.

(4) The found pulse position of each channel is coded, and a codecombining this with a polarity code is taken as the stochasticexcitation vector code.

With reference now to the accompanying drawings, stochastic codebookexcitation vector coding methods according to embodiments of the presentinvention will be explained in detail below. In the descriptions ofthese embodiments, an algebraic codebook is used for which the subframelength is 32 and the number of pulses (=number of channels) is 4.

Embodiment 1

In Embodiment 1, a case is described in which an index of apredetermined channel is changed in accordance with another channel.

In this embodiment, channel 0 pulse positions ici0[i0], channel 1 pulsepositions ici1[j1], channel 2 pulse positions ici2[j2], and channel 3pulse positions ici3[j3] are as shown below.

-   -   ici0[i0]={0, 4, 8, 12, 16, 20, 24, 28}    -   ici1[j1]={1, 5, 9, 13, 17, 21, 25, 29}    -   ici2[j2]={2, 6, 10, 14, 18, 22, 26, 30}    -   ici3[j3]={3, 7, 11, 15, 19, 23, 27, 31}

Here, i0 (0≦i0≦7) is the index of channel 0, j1 (0≦j1≦7) is the index ofchannel 1, j2 (0≦j2≦7) is the index of channel 2, and j3 (0≦j3≦7) is theindex of channel 3.

For example, the i0=0 pulse position is {0}, the i0=1 pulse position is{4}, and so on; and the j1=0 pulse position is {1}, the j1=1 pulseposition is {5}, and so on.

Channel 1, channel 2, and channel 3 pulses are grouped into pairs. Forexample, for channel 1, pulses are grouped into group 0 {1, 5}, group 1{9, 13}, group 2 {17, 21}, and group 3 {25, 29}.

Then, if i1 (0≦i1≦3) is designated the channel 1 group index, i2(0≦i2≦3) is designated the channel 2 group index, and i3 (0≦i3≦3) isdesignated the channel 3 group index, the relationship between indexesj1, j2, and j3 and group indexes i1, i2, and i3 is as shown in Equations(5) below.j1=i1×2+(i0% 2)j2=i2×2+((i0+i1)%2)j3=i3×2+((i1+i2)%2)  Equation (5)

In Equations (5), the “%” symbol denotes an operation that finds theremainder when the numeric value on the left of “%” (index) is dividedby the numeric value on the right. If indexes i0 through i3 areexpressed as binary numbers, the “%” operation can be implemented simplyby checking the code of the least significant bit of the index on theleft.

In this embodiment, as shown in Equations (5) above, the indexes ofchannels 1 through 3 are changed according to the index of anotherchannel. For example, index j1 of channel 1 changes according to indexi0 of channel 0, so that ici1[j1]={1, 9, 17, 25,} when i0=0, andici1[j1]={5, 13, 21, 29} when i0=1.

FIG. 2 and FIG. 3 are flowcharts showing an example of a pulse searchalgorithm for each channel in a coding method according to thisembodiment.

In FIG. 2 and FIG. 3, loop 0 is a loop in which i0 is changed from 0through 7, loop 1 is a loop in which i1 is changed from 0 through 3,loop 2 is a loop in which i2 is changed from 0 through 3, and loop 3 isa loop in which i3 is changed from 0 through 3.

In FIG. 2 and FIG. 3, first, i0, i1, and i2 are fixed at 0, and as thefirst stage, y and H in each i3 are calculated in loop 3, and maximumvalues ymax and Hmax thereamong, and i0, i1, i2, and i3 at that time arestored as ii0, ii1, ii2, and ii3 respectively. In this case, the channelpulse positions searched for are ici3[j3]={3, 11, 19, 27}.

Next, as the second stage, i2 is incremented in loop 2, and the abovefirst-stage computations are performed for each i2. When i0=0, i1=0, andi2=1, the channel 3 pulse positions searched for in the first stage areici3[j3]={7, 15, 23, 31}. Thus, the channel 3 pulse positions searchedfor in the first stage change according to the values of i0, i1, and i2.

Then, as the third stage, i1 is incremented in loop 1, and the abovefirst-stage and second-stage computations are performed for each i1. Inthis case, the channel 2 pulse positions searched for in the secondstage change according to the values of i0 and i1.

Lastly, as the fourth stage, i0 is incremented in loop 0, and the abovefirst-stage, second-stage, and third-stage computations are performedfor each i0. In this case, the channel 1 pulse positions searched for inthe third stage change according to the value of i0.

Thus, in this embodiment, using an n-fold loop search algorithm (where nis the number of channels), internal loop candidate positions arechanged according to loop-external codes.

Then ii0, ii1, ii2, and ii3 are found for which y and H are largest atall pulse positions searched for.

As a result, ii0 is 3 bits and ii1, ii2, and ii3 are 2 bits each, sothat pulse position coding can be performed in 9 bits, and together withthe polarity codes of each channel (1 bit×4 channels), coding can beperformed with a 13-bit code. Therefore, compared with the conventionalmethod, the number of bits necessary for coding can be reduced, and alower bit rate can be achieved.

Meanwhile, 8 locations are possible respectively for indexes j1, j2, andj3 of channels 1 through 3, and therefore there are no positions wherethere is no pulse at all in a subframe, variations of excitation vectorwaveforms corresponding to codes (position information) can be secured,and sound quality degradation can be prevented.

Thus, according to this embodiment, pulse positions of a predeterminedchannel are associated with pulse positions of another channel bychanging the predetermined channel index in accordance with anotherchannel. As a result, a stochastic excitation vector can be representedby fewer bits than heretofore, and variations can be secured so thatthere are no positions where there is no pulse at all.

Embodiment 2

In Embodiment 2, a case is described in which the pulse positionsthemselves of a predetermined channel are changed in accordance withanother channel.

In this embodiment, channel 0 pulse positions ici0[i0], channel 1 pulsepositions ici1[i1], channel 2 pulse positions ici2[i2], and channel 3pulse positions ici3[i3] are as shown below.

-   -   ici0[i0]={4, 7, 12, 15, 20, 23, 28, 31}    -   ici1[i1]={0, 8, 16, 24}    -   ici2[i2]={2, 10, 18, 26}    -   ici3[i3]={5, 13, 21, 29}

Here, i0 (0≦i0≦7) is the index of channel 0, i1 (0≦i1≦7) is the index ofchannel 1, i2 (0≦i2≦3) is the index of channel 2, and i3 (0≦i3≦3) is theindex of channel 3.

For example, the i0=0 pulse position is {4}, the i0=1 pulse position is{7}, and so on; and the i1=0 pulse position is {0}, the i1=1 pulseposition is {8}, and so on.

Then channel pulse positions ici0[i0], ici1[i1], ici2[i2], and ici3[i3]are adjusted to k0, k1, k2, and k3 with indexes i0, i1, i2, and i3 bymeans of Equations (6) below.

$\begin{matrix}\begin{matrix}{{k\; 0} = {{ici}\;{0\left\lbrack {i\; 0} \right\rbrack}}} \\{{k\; 1} = {{{ici}\;{1\left\lbrack {i\; 1} \right\rbrack} \times 2} + \left( {i\; 0\mspace{14mu}\%\mspace{14mu} 2} \right)}} \\{{k\; 2} = {{{ici}\;{0\left\lbrack {i\; 2} \right\rbrack} \times 2} + \left( {\left( {{i\; 0} + {i\; 1}} \right)\mspace{14mu}\%\mspace{14mu} 2} \right)}} \\{{k\; 3} = {{{ici}\;{0\left\lbrack {i\; 3} \right\rbrack} \times 2} + \left( {\left( {{i\; 1} + {i\; 2}} \right)\mspace{14mu}\%\mspace{14mu} 2} \right)}}\end{matrix} & {{Equation}\mspace{14mu}(6)}\end{matrix}$

In Equations (6), the “%” symbol denotes an operation that finds theremainder when the numeric value on the left of “%” (index) is dividedby the numeric value on the right.

In this embodiment, as shown in Equations (6) above, the pulse positionsthemselves of channels 1 through 3 are changed according to anotherchannel. As a result, adjusted pulse positions k0, k1, k2, and k3 ofchannels 0 through 3 are as shown below.

-   -   k0={4, 7, 12, 15, 20, 23, 28, 31}    -   k1={0, 1, 8, 9, 16, 17, 24, 25}    -   k2={2, 3, 10, 11, 18, 19, 26, 27}    -   k3={5, 6, 13, 14, 21, 22, 29, 30}

FIG. 4 and FIG. 5 are flowcharts showing an example of a pulse searchalgorithm for each channel in a coding method according to thisembodiment.

In FIG. 4 and FIG. 5, loop 0 is a loop in which i0 is changed from 0through 7, loop 1 is a loop in which i1 is changed from 0 through 3,loop 2 is a loop in which i2 is changed from 0 through 3, and loop 3 isa loop in which i3 is changed from 0 through 3.

In FIG. 4 and FIG. 5, first, i0, i1, and i2 are fixed at 0, and as thefirst stage, y and H in each i3 are calculated in loop 3, and maximumvalues ymax and Hmax thereamong, and i0, i1, i2, and i3 at that time arestored as ii0, ii1, ii2, and ii3 respectively.

Next, as the second stage, i2 is incremented in loop 2, and the abovefirst-stage computations are performed for each i2.

Then, as the third stage, i1 is increased in loop 1, and the abovefirst-stage and second-stage computations are performed for each i1.

Lastly, as the fourth stage, i0 is increased in loop 0, the abovefirst-stage, second-stage, and third-stage computations are performedfor each i0, and ii0, ii1, ii2, and ii3 are found for which y and H arelargest at all pulse positions searched for.

As a result, ii0 is 3 bits and ii1, ii2, and ii3 are 2 bits each, sothat pulse position coding can be performed in 9 bits, and together withthe polarity codes of each channel (1 bit×4 channels), coding can beperformed with a 13-bit code. Therefore, compared with the conventionalmethod, the number of bits necessary for coding can be reduced, and alower bit rate can be achieved.

Meanwhile, 8 locations are possible respectively for the adjusted pulsepositions (k1, k2, and k3) of channels 1 through 3, and therefore thereare no positions where there is no pulse at all in a subframe,variations of excitation vector waveforms corresponding to codes(position information) can be secured, and sound quality degradation canbe prevented.

Thus, according to this embodiment, by changing the pulse positions of apredetermined channel in accordance with another channel, a stochasticexcitation vector can be represented by fewer bits than heretofore, andvariations can be secured so that there are no positions where there isno pulse at all.

In a stochastic codebook provided in a speech decoding apparatus, astochastic excitation vector searched for by a speech coding apparatuscan be found by performing computations by means of an above-describedsearch algorithm on codes of each channel coded and transmitted in anabove-described embodiment.

In the above embodiments, a 2's remainder is found as variations areassumed to be 2-fold, but the present invention is not limited to this,and is also effective in a case where the numeric value for which aremainder is found is made larger, to 3 or more, in order to achieve astill lower bit rate and extended subframe length.

Also, in the above embodiments, information of a plurality of channelsis integrated by means of addition, but the present invention is notlimited to this, and is also effective in a case where a moresophisticated function, such as weighted addition (addition withmultiplication by a constant) or a random number generator, is used.

Furthermore, in the above embodiments, a value reflecting information ofanother channel is extracted by means of multiplication, but the presentinvention is not limited to this, and is also effective in a case wherea more sophisticated function is used, such as when a random numbergenerator or conversion table is used.

Moreover, in the above embodiments, a case has been described in whichan algebraic codebook is used and an impulse position corresponds to acode, but the present invention is not limited to this, and is alsoeffective in a case where a stochastic codebook is composed of sums ofpartial waveforms, and the starting position thereof corresponds to acode.

Also, in the above embodiments, a case has been described in which analgebraic codebook is used and an impulse position corresponds to acode, but the present invention is not limited to this, and is alsoeffective in a case where a stochastic codebook is composed of amultiplicity of fixed waveforms stored in ROM, and an excitation vectorwaveform is created by the sum of a plurality thereof, and that waveformnumber corresponds to a code. In this case, the present invention can beapplied easily by replacing “position” with “waveform number.”

As is clear from the above description, according to the presentinvention, by performing coding with a pulse position of a predeterminedchannel associated with a pulse position of another channel, and takinga code combining this and a polarity code as a stochastic codebookexcitation vector code, it is possible to represent a stochasticexcitation vector with fewer bits than heretofore, and to securevariations so that there are no positions where there is no pulse atall.

This application is based on Japanese Patent Application No. 2002-330768filed on Nov. 14, 2002, the entire content of which is expresslyincorporated by reference herein.

INDUSTRIAL APPLICABILITY

The present invention is applicable to a CELP speech codingapparatus/speech decoding apparatus.

1. A coding method of an excitation vector of a stochastic codebook usedin a speech coding apparatus that is divided into a plurality ofchannels, the coding method comprising: associating an excitation vectorwaveform candidate of a predetermined channel with an excitation vectorwaveform candidate of another channel, such that the excitation vectorwaveform candidate of the predetermined channel changes in associationwith a change of a number representing the excitation vector waveformcandidate of the another channel; searching for an excitation vectorwaveform that minimizes coding distortion using the associatedexcitation vector waveform candidate of the predetermined channel andthe excitation vector waveform candidate of the another channel; anddetermining a code of the excitation vector of the stochastic codebookusing a code of the excitation vector waveform obtained by thesearching, wherein: the searching, after the associating, calculates afunction value using the number representing the changed excitationvector waveform candidate of the another channel and the excitationvector waveform candidate of the predetermined channel changed based onthe associating, and, by the function value, finds an excitation vectorwaveform candidate of each channel that minimizes the coding distortion;and the determining finds the code of the excitation vector waveform bycoding the excitation vector waveform candidate of each channel thatminimizes the coding distortion as the excitation vector waveform, anddetermines the code of the excitation vector of the stochastic codebookusing the code of the excitation vector waveform.
 2. The coding methodof claim 1, wherein: the searching searches for the excitation vectorwaveform by a loop calculation of n-fold loops, multiplexed a number oftimes corresponding to a number of channels n, and repeats theassociating predetermined times to change the excitation vector waveformcandidate of the predetermined channel by changing the numberrepresenting the excitation vector waveform candidate of the anotherchannel, and the loop calculation changes the number representing theexcitation vector waveform candidate of the another channel by apredetermined loop, changing the excitation vector waveform of thepredetermined channel by a loop within the predetermined loop.
 3. Thecoding method of claim 1, wherein the stochastic codebook comprises analgebraic codebook, and the excitation vector waveform candidate isrepresented by a pulse position.
 4. The coding method of claim 1,wherein the associating associates the excitation vector waveformcandidate of the predetermined channel with a remainder operation resultusing the number representing the excitation vector waveform candidateof the another channel.